home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / ADDON.PAK / MSGCLI.CPP < prev    next >
C/C++ Source or Header  |  1997-05-06  |  3KB  |  114 lines

  1. /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2.  
  3.   msgcli.cpp
  4.   Created: 06/27/96
  5.   Copyright (c) 1996, Borland International
  6.   $Revision:   1.0  $
  7.  
  8.   MessageClientTest
  9.    
  10. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/  
  11.  
  12. #include "msgcli.h"
  13.  
  14.  
  15. MessageClientTest::MessageClientTest() : IUNKNOWNIMPL_INIT( IMessageClient ) {
  16.   _tooLateToStartHandling = false;
  17.   _showHandlingEnabled = _viewHandlingEnabled = _editHandlingEnabled = false;
  18.   IMessageSystem2 * ms = GET_INTERFACE( IMessageSystem2 );
  19.   ms->RegisterMessageClient( this );
  20.   OutStr( "Registered dormant message client." );
  21.   ms->Release();
  22. }
  23.  
  24. void MessageClientTest::warnIfTooLate() {
  25.   if ( _tooLateToStartHandling ) {
  26.     OutStr( "It is too late to begin message handling." );
  27.   }
  28.  
  29. BOOL MessageClientTest::Init() {
  30.   warnIfTooLate();
  31.   return TRUE;
  32. }
  33.  
  34. void MessageClientTest::UnInit() {
  35. }
  36.  
  37.  
  38. const char * MessageClientTest::GetName() {
  39.   return "Message Client Test";
  40. }
  41.  
  42.  
  43. BOOL MessageClientTest::CanHandleMessage( IPolyString * handlerType, IPolyString * action ) {
  44.   BOOL ret = FALSE;
  45.   if ( lstrcmp( handlerType->GetCstr(), "SourceEditor" ) == 0 ) {
  46.     _tooLateToStartHandling = true;   
  47.     if ( lstrcmp( action->GetCstr(), "Edit" ) == 0 ) {
  48.       ret = _editHandlingEnabled;
  49.     }
  50.     else if ( lstrcmp( action->GetCstr(), "View" ) == 0 ) {
  51.       ret = _viewHandlingEnabled;
  52.     }
  53.     else if ( lstrcmp( action->GetCstr(), "Show" ) == 0 ) {
  54.       ret = _showHandlingEnabled;
  55.     }
  56.   }
  57.   OutStr( 
  58.     FormatStr( "MessageClientTest::CanHandleMessage( %s, %s ) returning %s",
  59.     handlerType->GetCstr(), action->GetCstr(), ret? "TRUE" : "FALSE" ) );
  60.     
  61.   
  62.   handlerType->Release();
  63.   action->Release();
  64.   return ret;
  65. }
  66.  
  67. void MessageClientTest::HandleMessage( IPolyString * action, int column, int line, IPolyString * filePath ) {
  68.   OutStr( FormatStr( "MessageClientTest::HandleMessage( %s, %d, %d, %s )",
  69.     action->GetCstr(), column, line, filePath->GetCstr() ) );
  70.   action->Release();
  71.   filePath->Release();    
  72. }
  73.  
  74. const char * MessageClientTest::GetTestDescription( int testNum ) {
  75.   switch ( testNum ) {
  76.     case 1:
  77.       return "Handle 'Show' messages for handler type 'SourceEdit'";
  78.     case 2:
  79.       return "Handle 'View' messages for handler type 'SourceEdit'";
  80.     case 3:
  81.       return "Handle 'Edit' messages for handler type 'SourceEdit'";
  82.     case 4:
  83.       break;
  84.   }
  85.   return "This test not implemented.";
  86. }
  87.  
  88. void MessageClientTest::DoTest( int testNum ) {
  89.   warnIfTooLate();
  90.   switch ( testNum ) {
  91.     case 1:
  92.       _showHandlingEnabled = true;
  93.       break;
  94.     case 2:
  95.       _viewHandlingEnabled = true;
  96.       break;
  97.     case 3:
  98.       _editHandlingEnabled = true;
  99.       break;
  100.     case 4:
  101.     default:
  102.       OutStr( FormatStr( "Test #%d Not Implemented!", testNum ) );
  103.       break;
  104.     
  105.   }
  106.   OutStr( FormatStr( "MessageClient state: Show=%s View=%s Edit=%s",
  107.           _showHandlingEnabled? "Enabled" : "Off",
  108.           _viewHandlingEnabled? "Enabled" : "Off",
  109.           _editHandlingEnabled? "Enabled" : "Off" ) );
  110.           
  111.  
  112. }
  113.